// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;

#include "MySqlShowEngineStatement.h"
#include "../../../../ast/SQLExpr.h"
#include "../../visitor/MySqlASTVisitor.h"

MySqlShowEngineStatement_Option_ptr MySqlShowEngineStatement_Option::STATUS = MySqlShowEngineStatement_Option_ptr(new MySqlShowEngineStatement_Option(1 << 0, make_string_ptr("STATUS")));
MySqlShowEngineStatement_Option_ptr MySqlShowEngineStatement_Option::MUTEX = MySqlShowEngineStatement_Option_ptr(new MySqlShowEngineStatement_Option(1 << 1, make_string_ptr("MUTEX")));

MySqlShowEngineStatement_Option::MySqlShowEngineStatement_Option(uint64_t mask, string_ptr name)
{
  this->mask = mask;
  this->name = name;
}

void MySqlShowEngineStatement::accept0(MySqlASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(MySqlShowEngineStatement)))
  {
    acceptChild(visitor, name);
  }
  visitor->endVisit(SharedObject(MySqlShowEngineStatement));
}

SQLExpr_ptr MySqlShowEngineStatement::getName()
{
  return name;
}

void MySqlShowEngineStatement::setName(SQLExpr_ptr name)
{
  this->name = name;
}

MySqlShowEngineStatement_Option_ptr MySqlShowEngineStatement::getOption()
{
  return option;
}

void MySqlShowEngineStatement::setOption(MySqlShowEngineStatement_Option_ptr option)
{
  this->option = option;
}
